0 REM********* FILE CABINET ********** 1 REM********* DJB SHIBLEY ********** 10 GOSUB5000:GOTO500 25 PRINT"[152]":FORJ=1TOF1:PRINT""CD$W$(H,J)"":NEXT 27 IFASC(F2$(1))<>42THENRETURN 29 FORJ=2TO11:PRINT""CD$W$(H,J):NEXT:RETURN 35 POKE53280,15:PRINT"[147]"SPC(13)F0$"" 36 PRINT"PRESS RETURN THROUGH EACH FIELDTO QUIT[144]" 37 FORJ=1TOF1:PRINTF2$(J)":":NEXT:IFASC(F2$(1))<>42THENRETURN 39 PRINT"":FORJ=1TO10:PRINT"V"J:NEXT:RETURN 40 PRINT"":FORJ=1TOF1:PRINT""LEFT$(SP$,25)"":NEXT 42 IFASC(F2$(1))<>42THENRETURN 44 FORJ=1TO10:PRINT""LEFT$(SP$,26):NEXT:RETURN 100 POKE53280,.:POKE53281,.:PRINT"[147][158]LOADING : "F0$"" 105 PRINT"PLEASE STAND BY":CH=. 110 OPEN2,8,2,"0:"+F0$+",S,R":INPUT#2,T:IFASC(F2$(1))=42THEN120 115 FORI=1TOT:FORJ=1TOF1:INPUT#2,W$(I,J):NEXT:NEXT:GOTO125 120 FORI=1TOT:INPUT#2,W$(I,1):FORJ=2TO11:INPUT#2,W$(I,J):NEXT:NEXT 125 CLOSE2:RETURN 130 PRINTCB$:PRINT""SPC(13);:Y$="NEXT OR RETURN":GOSUB444 135 IFX$=CHR$(13)ORX$="N"ORX$="R"THENPRINTCB$:RETURN 137 GOTO130 425 PRINT"[155] [157][148] ":X=LEN(X$) 427 FORJ=1TO28-X:PRINT""SPC(J)"[157] "LEFT$(X$,X/2)""SPC(39-J)LEFT$(LR$,X/2); 430 PRINTRIGHT$(X$,X/2)" [157]":FORK=1TO15:NEXT:NEXT:FORJ=1TO35 433 PRINT"[155] [157][148] ":FORK=1TO20:NEXT 435 PRINT""SPC(20-X/2)X$:FORK=1TO20:NEXT:NEXT:RETURN 444 X=LEN(Y$):PRINTY$LEFT$(LR$,X); 445 FORJ=1TO50:GETX$:IFX$=""THENNEXT:GOTO450 447 J=50:NEXT:RETURN 450 PRINTLEFT$(SP$,X)LEFT$(LR$,X); 453 FORJ=1TO40:GETX$:IFX$=""THENNEXT:GOTO444 455 J=40:NEXT:RETURN 460 Y$="[209]":Z$="" 465 GOSUB444:IFX$=""ORX$=CHR$(13)THENPRINT" ":RETURN 470 IFX$="[157]"ORX$=CHR$(20)ANDLEN(Z$)=.THEN465 475 IFX$="[157]"ORX$=CHR$(20)THENZ$=LEFT$(Z$,LEN(Z$)-1):PRINT"[157] [157][157]";:GOTO465 477 IFX$>"^"ORLEN(Z$)=DLTHEN465 480 IFX$<" "ORX$=CHR$(34)ORX$=","ORX$=";"ORX$=":"THEN465 485 PRINT"[152]"X$"";:Z$=Z$+X$:GOTO465 500 POKE53280,4:POKE53281,15:PRINT"[147]";:CH=. 505 PRINT" "; 508 FORJ=.TO22:PRINT"  ";:NEXT 510 PRINT" [157][148] " 512 PRINT"FILE CABINET[157][157][157][157][157][157][157][157][157][157][157][157][158][197][197][197][197][197][197][197][197][197][197][197][197]" 514 PRINT"[154]FROM SHIBLEY SOFTWARE[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][156][183][183][183][183][183][183][183][183][183][183][183]"; 515 PRINT"[183][183][183][183][183][183][183][183][183][183][183]" 517 PRINTSPC(10)"1 - [144]NEW FILE":PRINTSPC(10)"2 - [144]EXISTING FILE" 518 PRINTSPC(10)"3 - [144]DISPLAY DISK":PRINTSPC(10)"4 - [144]COMMAND ENTRY" 520 PRINTSPC(10)"5 - [144]TERMINATE PROGRAM" 523 PRINT""SPC(13); 525 Y$="DEPRESS OPTION"::GOSUB444:IFX$=""ORX$="5"THEN4000 530 IFX$<"1"ORX$>"5"THEN523 535 O$=X$:IFO$="3"THEN800 540 PRINT" ":FORJ=1TO6:PRINT""LEFT$(SP$,30):NEXT:IFO$="4"THEN1000 545 PRINT""SPC(12)"RETURN FILE NAME" 547 PRINT"[145][145][145][145] RETURN EMPTY FILENAME TO CANCEL" 550 PRINTSPC(11)"[197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][145][145]":PRINTCE$; 555 DL=16:GOSUB460:IFX$=""THEN500 560 F0$=Z$:IFZ$=""THEN500:REM F0$="SCRATCH":PRINTCE$"SCRATCH" 565 IFLEN(F0$)<16THENF0$=F0$+" ":GOTO565 575 OPEN2,8,2,"0:DIR,S,R":INPUT#2,T1:IF(T1<30ORO$="2")ANDST=.THEN580 576 CLOSE2:IFST>.THENX$="UNFORMATTED DISK":GOSUB425:GOTO500 577 X$="DISK FULL ERROR":GOSUB425:GOTO500 580 X=.:FORJ=1TOT1:INPUT#2,X$:W$(J,.)=X$:IFLEFT$(X$,16)=F0$THENX=J 585 NEXT:CLOSE2:IFX=.ANDO$="1"THENPRINT"":GOTO595 587 IFX=.THENX$="FILE NOT FOUND":GOSUB425:PRINT""SP$:GOTO545 588 IFO$="1"THENX$="FILE DUP. ERROR":GOSUB425:PRINT""SP$:GOTO545 589 F1=VAL(MID$(W$(X,.),17,1)):FORJ=1TOF1:F2$(J)=MID$(W$(X,.),8+J*10,10):NEXT 590 GOSUB100:GOTO2000 595 PRINT""F0$""SPC(19)"# OF FIELDS":PRINT""RIGHT$(SP$,38) 600 PRINT"[145]"SPC(12):DL=1:GOSUB460:IFX$=""THEN500 605 F1=VAL(Z$):IFZ$=""ORZ$<"1"ORZ$>"8"THENF1=1 610 PRINT"":PRINTSPC(22)F1" FIELDS"SPC(19)"FIELD " 615 FORI=1TOF1:PRINT""SPC(24)I"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]"; 616 PRINT" [157][157][157][157][157][157][157][157][157][157]"; 620 DL=10:GOSUB460:IFX$=""THENJ=F1:NEXT:GOTO500 621 IFZ$=""THENZ$="FIELD"+STR$(I) 625 IFLEN(Z$)<10THENZ$=Z$+" ":GOTO625 630 F2$(I)=Z$:IFASC(Z$)=42THENIFF1>1THENX$="VARIABLE ERROR":GOSUB425:GOTO500 645 PRINT"";:FORJ=1TOI:PRINT""; 646 IFJ=5THENPRINT"[145][145][145][145][145][145][145][145]"; 650 NEXT:PRINTF2$(I):NEXT:T=.:T1=T1+1:W$(T1,.)=F0$+RIGHT$(STR$(F1),1) 651 FORJ=1TOF1:W$(T1,.)=W$(T1,.)+F2$(J):NEXT:CH=1 655 GOSUB35:IFT=200THENX$="FILE FULL":GOSUB425:GOTO500 660 XQ$="":T=T+1:PRINT""SPC(32)T"":FORI=1TOF1 665 PRINT""SPC(12);:DL=25:GOSUB460:IFX$=""ANDT=1THENI=F1:NEXT:GOTO500 670 IFX$=""THENT=T-1:I=F1:NEXT:CH=CH+1:GOTO2000 675 XQ$=XQ$+Z$:IFZ$=""THENZ$="*" 685 W$(T,I)=Z$:NEXT:IFXQ$=""ANDT=1THEN500 686 IFXQ$=""THENT=T-1:CH=CH+1::GOTO2000 687 IFASC(F2$(1))<>42THEN715 690 PRINT"":FORJ=2TO11:W$(T,J)="*":NEXT:FORI=2TO11:PRINT""; 700 DL=25:GOSUB460:IFX$=""ORZ$=""THENI=11:NEXT:GOTO715 710 W$(T,I)=Z$:NEXT 715 GOSUB40:GOTO660 725 PRINTCB$:PRINT"[145]";:Y$="IS THIS THE RECORD TO BE ERASED" 727 GOSUB444:IFX$<>"Y"ANDX$<>"N"THEN725 730 PRINTCB$:IFX$="N"ANDSA<=TTHEN2070 731 IFX$="N"THEN2000 735 PRINTCB$:PRINTSPC(13)"[145]ERASING RECORD[145]":CH=1:T=T-1:IFASC(F2$(1))=42THEN740 736 FORI=HTOT:FORJ=1TOF1:W$(I,J)=W$(I+1,J):NEXT:NEXT:GOTO744 740 FORI=HTOT:FORJ=1TO11:W$(I,J)=W$(I+1,J):NEXT:NEXT 744 PRINTCB$:PRINTSPC(11)"[145]RECORD ELIMINATED":FORJ=1TO800:NEXT:GOTO2000 750 PRINT"":DL=25:Y$="[209]":FORI=1TOF1:PRINT""SPC(LEN(W$(H,I))+12); 755 Z$=W$(H,I):GOSUB465:IFZ$<>W$(H,I)THENCH=1 760 IFZ$=""THENZ$="*" 765 W$(H,I)=Z$:IFX$=""THENI=F1:NEXT:GOTO2000 770 NEXT:IFASC(F2$(1))<>42THENGOTO790 775 PRINT"";:FORI=2TO11:PRINTSPC(LEN(W$(H,I))+10);:Z$=W$(H,I) 780 GOSUB465:IFZ$<>W$(H,I)THENCH=1 785 W$(H,I)=Z$:IFX$=""THENI=11:NEXT:GOTO2000 788 NEXT 790 GOSUB130:IFX$=CHR$(13)THENH=H+1:IFH>TTHENH=1 792 IFX$=CHR$(13)THEN2080 794 IFX$="N"THEN2050 798 GOTO2000 800 POKE53280,5:POKE53281,4:PRINT"[147][158]FILES ON THIS DISK ARE:[144]" 805 OPEN2,8,2,"DIR,S,R":INPUT#2,T1:IFST=.THEN810 806 CLOSE2:X$="UNFORMATTED DISK":GOSUB425:GOTO500 810 FORJ=1TOT1:INPUT#2,X$:PRINT""LEFT$(X$,16);:IFINT(J/2)=J/2THENPRINT 815 NEXT:CLOSE2:GOSUB130:IFX$=CHR$(13)ORX$="R"THEN500 820 GOTO800 825 POKE53280,.:POKE53281,2:PRINT"[147][150]"SPC(16)"PRINTING":PR$="01" 826 OPEN2,8,2,"0:PTR.FMT,S,R":INPUT#2,X$:IFST=64THENPR$=X$ 827 CLOSE2:P(.)=VAL(LEFT$(PR$,1)):P(1)=VAL(RIGHT$(PR$,1)) 830 OPEN4,4:PRINT#4,SPC(30)F0$:PRINT#4,SPC(30)"----------------"CHR$(13)CHR$(13) 835 FORI=1TOT:GETX$:IFX$=""THENI=T:GOTO865 840 Y=.:FORJ=1TOF1:IFP(.)=1OR(P(.)=2ANDJ=1)THENPRINT#4,F2$(J)":";:Y=Y+11 841 IFW$(I,J)="*"AND(P(.)=0OR(P(.)=2ANDJ>1))THEN844 842 PRINT#4,W$(I,J);:Y=Y+LEN(W$(I,J)):IFP(1)=1ANDJ1ANDLEN(W$(I,J+1))+Y<80THEN849 845 IFP(.)=1ANDLEN(W$(I,J+1))+Y+11<80THEN849 847 Y=.:PRINT#4 849 NEXT:PRINT#4:IFASC(F2$(1))<>42THEN865 850 Y=.:FORJ=2TO11:IFW$(I,J)="*"THENJ=11:GOTO860 852 IFY=.ANDP(.)>.THENPRINT#4," ";:Y=11 855 PRINT#4,W$(I,J);:Y=Y+LEN(W$(I,J)):IFP(1)=1THENPRINT#4,",";:Y=Y+1 856 PRINT#4," ";:Y=Y+1:IFJ<11THENIFLEN(W$(I,J+1))+Y>79THENY=.:PRINT#4 860 NEXT:PRINT#4 865 PRINT#4:NEXT:FORJ=1TO10:PRINT#4:NEXT:CLOSE4:GOTO2000 1000 POKE53280,.:POKE53281,.:PRINT"[147][158]LOADING COMMAND PROGRAM[144]" 1004 PRINT"LOAD"CHR$(34)"F.CMD"CHR$(34)",8" 1006 PRINT"RUN":POKE198,.:POKE631,13:POKE632,13:POKE198,2:END 2000 POKE53280,4:POKE53281,15:PRINT"[147]"; 2005 PRINT" "; 2008 FORJ=.TO22:PRINT"  ";:NEXT 2010 PRINT" [157][148] " 2012 PRINT"FILE CABINET[157][157][157][157][157][157][157][157][157][157][157][157][158][197][197][197][197][197][197][197][197][197][197][197][197]" 2014 PRINT"[154]FILE= "F0$"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][156][183][183][183][183][183][183][183][183][183][183][183]"; 2015 PRINT"[183][183][183][183][183][183][183][183][183][183][183]" 2017 PRINTSPC(10)"1 - [144]DISPLAY":PRINTSPC(10)"2 - [144]ADD RECORDS" 2018 PRINTSPC(10)"3 - [144]EDIT RECORDS":PRINTSPC(10)"4 - [144]DELETE RECORDS" 2020 PRINTSPC(10)"5 - [144]PRINT":PRINTSPC(10)"6 - [144]EXIT FILE" 2023 PRINT""SPC(13); 2025 Y$="DEPRESS OPTION"::GOSUB444:IFX$=""THEN5400 2030 IFX$<"1"ORX$>"6"THEN2023 2035 O$=X$:IF(O$="6"ORX$="")ANDCH=.THEN500 2037 IFO$="4"ANDT=1THENX$="FILE EMPTY":GOSUB425:GOTO2000 2040 ONVAL(O$)GOTO2050,655,2050,2050,825,5400 2050 GOSUB35:PRINT"":FORI=1TOF1 2055 PRINT""SPC(12);:DL=25:GOSUB460:IFX$=""THENI=F1:NEXT:GOTO2000 2060 IFZ$<>""THENY=I:I=F1 2065 NEXT:SA=1:IFZ$=""THEN2000 2070 H=.:X=LEN(Z$):FORJ=SATOT:IFLEFT$(W$(J,Y),X)=Z$THENH=J:SA=J+1:J=T 2075 NEXT:IFH=.THENX$="RECORD NOT FOUND":GOSUB425:GOTO2050 2080 GOSUB25:ONVAL(O$)GOTO2085,0,750,725 2085 GOSUB130:IFX$=CHR$(13)THENH=H+1:IFH>TTHENH=1 2090 IFX$=CHR$(13)THEN2080 2095 IFX$="N"THEN2050 2097 GOTO2000 4000 POKE53280,6:POKE53281,6:PRINT"[147]"SPC(14)"FILE CABINET" 4002 PRINTSPC(18)"[158]ENDED[144]":LOAD"HELLO CONNECT",8:END 4999 STOP 5000 DIMW$(200,11) 5001 FORJ=1TO40:X$=X$+"[157]":Y$=Y$+"":NEXT:LR$=X$+Y$:FORJ=1TO40:SP$=SP$+" ":NEXT 5002 CE$=""+LEFT$(SP$,38)+LEFT$(LR$,27) 5003 CD$=" [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]" 5004 CB$=""+LEFT$(SP$,38)+LEFT$(LR$,38):RETURN 5049 RETURN 5400 IFCH=.THENRUN 5401 POKE53280,.:POKE53281,.:PRINT"[147][158]";:Y$="SHALL I SAVE THE CHANGES Y/N" 5405 GOSUB444:IFX$="N"ORX$=""THENRUN 5406 IFX$="R"THEN2000 5410 IFX$<>"Y"THEN5400 5415 PRINT"[147]SAVING : "F0$ 5420 OPEN15,8,15:PRINT#15,"S0:"+F0$:CLOSE15 5425 OPEN3,8,3,"0:"+F0$+",S,W":PRINT#3,T:IFASC(F2$(1))=42THEN5440 5430 FORI=1TOT:FORJ=1TOF1:PRINT#3,W$(I,J):NEXT:NEXT:GOTO5450 5440 FORI=1TOT:FORJ=1TO11:PRINT#3,W$(I,J):NEXT:NEXT 5450 CLOSE3:IFCH=1THENRUN 5452 OPEN15,8,15:PRINT#15,"S0:DIR":CLOSE15:OPEN3,8,3,"0:DIR,S,W":PRINT#3,T1 5455 FORJ=1TOT1:PRINT#3,W$(J,.):NEXT:CLOSE3:RUN 5555 OPEN15,8,15:PRINT#15,"S0:FILE CABINET":CLOSE15:SAVE"FILE CABINET",8:END